مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته
مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته در حال حاضر با پردازندههای بسیاری اجماع شدهاست. هدف از این مجموعه دستورالعمل، افزایش سرعت و همچنین مقاومت در برابر حملات جانبی کانال میباشد، برنامهها برای انجام رمزگذاری و رمزگشایی از استاندارد رمزگذاری پیشرفته (AES) استفاده میکنند. آنها اغلب به عنوان دستورالعملهایی برای اجرا در یک دور AES میباشند همراه با یک نسخه خاص برای آخرین دور اجرا که روش دور آخر کمی متفاوت است .
پردازندههای معماری x86
[ویرایش]AES-NI (یا دستورالعمل جدید استاندارد رمزگذاری پیشرفته Intel یا به صورت خلاصه AES-NI) اولین پیادهسازی اساسی مجموعه بود. AES-NI یک فرمت معماری مجموعه دستورالعمل x86 برای ریزپردازندههای اینتل و ایامدی است که توسط اینتل در مارس ۲۰۰۸ پیشنهاد شدهاست.[۱]
دستورالعمل ها
[ویرایش]دستورالعمل | شرح [۲] |
---|---|
AESENC
|
یک مرحله از یک جریان رمزنگاری AES را انجام میدهد |
AESENCLAST
|
آخرین مرحله جریان رمزنگاری AES را انجام میدهد |
AESDEC
|
یک دور از جریان رمزگشایی AES را انجام میدهد |
AESDECLAST
|
آخرین مرحله جریان رمزگشایی AES را انجام میدهد |
AESKEYGENASSIST
|
کمک در تولید کلید هر دور AES |
AESIMC
|
کمک در ستونهای مخلوط معکوس AES |
PCLMULQDQ
|
بدون رقم نقلی ضرب شدن ( CLMUL ) [۳] |
اینتل
[ویرایش]پردازندههای اینتل زیر از دستورالعمل AES-NI پشتیبانی میکنند: [۴]
- پردازنده مبتنی بر westmere بهطور خاص :
- پردازنده سری westmere-EP(xeon 56xx) با نام مستعار gulftown سری DP سرور
- پردازندههای clarkdale(به استثنای core i3,pentium,celeron)
- پردازنده arrandale (به جز celeron,pentium,core i3,core i5-4XXm)
- پردازندههای sandy bridge:
- مخصوص کامپیوترهای رومیزی: همه به جز پنتیوم، سلرون و core i3
- موبایل : تمام پردازندههای core i7 و core i5. چندین فروشنده بزرگ پردازندههایی با تنظیمات بایوس غیر فعال پخش کردند که با بروز رسانی فعال میشدند.
- پردازندههای Ivy bridge.
- تمام i5,i7,Xeon و تنها i3-2115c
- پردازندههای هاسول (به جز i3-4000m,pentium , celeron)
- پردازندههای broad well (همه به جز پنتیوم و سلرون)
- پردازندههای silvermont/airmont(همه به جز bay trail-D و bay trail-M)
- پردازندههای goldmont
- پردازندههای skylake
- پردازندههای kaby lake
- پردازندههای coffee lake
AMD
[ویرایش]چند پردازنده AMD از دستورالعمل AES پشتیبانی میکند:
- پردازندههای مبتنی بر Jaguar و جدیدتر
- پردازندههای مبتنی بر Puma و جدیدتر
- پردازنده "تجهیزات سنگین"
- پردازندههای مبتنی بر بولدوزر [۵]
- پردازندههای مبتنی بر Piledriver
- پردازندههای مبتنی بر Steamroller
- پردازندههای بر پایه بیل و جدیدتر
- پردازندههای مبتنی بر ذن
- پردازندههای مبتنی بر Zen +
شتابدهنده سختافزاری در سایر معماریها
[ویرایش]پشتیبانی از AES با دستورالعملهای پردازنده غیرمجاز نیز در آخرین پردازندههای SPARC (T3، T4، T5، M5 و به جلو) و در آخرین پردازندههای ARM در دسترس است. پردازنده SPARC T4، که در سال ۲۰۱۱ معرفی شدهاست، دارای دستورالعملهای سطح_کاربر میباشد در مراحل AES را پشتیبانی میکند.[۶] این دستورالعملها علاوه بر دستورهای رمزنگاری سطح بالاتر میباشد. معماری پردازنده ARMv8-A، که در سال ۲۰۱۱ معرفی شد، از جمله ARM Cortex-A53 و A57 (اما پردازندههای قبلی v7 مانند Cortex A5، ۷، ۸، ۹، ۱۱، ۱۵ [نیازمند منبع] را شامل نمیشود) نیز دستورالعملهای سطح کاربر که مراحل AES را اجرا میکنند را دارند.[۷] در آگوست ۲۰۱۲، IBM اعلام کرد[۸] که معماری آینده Power7 + از AES پشتیبانی خواهد کرد. دستورها در این معماری با دستورهای AES-NI یکسان نیستند، اما قابلیتهای مشابهی را در اختیار مصرفکننده میگذارند.
IBM Z9 یا هستههای اصلی پردازنده بعدی AES را به عنوان تک دستور العمل AES ECB / CBC AES ECB / CBC از طریق سختافزار CryptoExpress IBM اجرا میکنند.[۹] اجرای این نسخه AES تک دستورالعمل، از اجرای Intel NIها راحتتر میباشد، اما ممکن است برای اجرای الگوریتمهای دیگر که بر اساس توابع مرحله ای AES میباشد گسترش نیابد (مانند تابع رمزگذاری گرداب (whirlpool)).
پشتیبانی از پردازندههای x86
[ویرایش]پردازندههای VIA x86، AMD Geode و Marvell Kirkwood (که در لینوکسARM, mv_cesa) از شتابدهندههای درایوری به جای AES استفاده میکنند. (نگاه کنید به API Crypto (لینوکس).)
تراشههای زیر، در حالی که از سختافزار شتابدهندههای AES پشتیبانی میکنند، از دستورالعمل AES پشتیبانی نمیکنند:
- پردازندههای AMD Geode LX[۱۰]
- از طریق
ARM معماری
[ویرایش]اطلاعات برنامهنویسی در ARM Architecture Reference Manual ARMv8 برای مشخصات معماری ARMv8-A موجود است.[۱۵]
- معماری ARMv8-A
- فرمتهای رمزنگاری ARM بهطور اختیاری بر روی هستههای ARM Cortex-A30 / 50/70 پشتیبانی میشوند
- شتابدهندههای سختافزاری رمزنگاری / موتورهای
معماری دیگر
[ویرایش]- Atmel XMEGA[۲۱] (شتابدهنده در تراشه با اجرای موازی، دستورالعمل نیست)
- SPARC T3 و پردازندههای بعدی پشتیبانی سختافزاری برای چند الگوریتم رمزنگاری، از جمله AES دارند.
- Cavium Octeon MIPS[۲۲] تمامی پردازندههای مبتنی بر MIPS مبتنی بر Cavium Octeon دارای پشتیبانی سختافزاری برای چند الگوریتم رمزنگاری هستند، از جمله AES با استفاده از دستورالعملهای خاص coprocessor 3.
کارایی
[ویرایش]پاتریک اشمیت و اکیم راس در تحلیل عملکرد AES-NI، نتایج قابل توجهی از تعداد زیادی از برنامههای کاربردی که در حال حاضر بهینه سازی شدهاند تا از مزایای قابلیت AES-NI اینتل بهره مند شوند، بدست اوردهاند. [۲۳] تجزیه و تحلیل عملکرد با استفاده از کتابخانه امنیت ++Crypto افزایش بهره را از حدود 28.0 سیکل در بایت به 3.5 سیکل در هر بایت با AES / GCM به نسبت پنتیوم 4 بدون شتاب دهنده نشان داد. [۲۴] [۲۵]
پشتیبانی از نرمافزار
[ویرایش]بیشتر کامپایلرهای مدرن میتوانند دستورالعمل AES را منتشر کنند.
نرمافزار امنیتی و رمزنگاری زیادی از مجموعه دستورالعمل AES پشتیبانی میکند . از جمله زیرساخت اصلی زیر:
- رمزنگاری API: نسل بعدی (CNG) (نیاز به ویندوز) [۲۶]
- API Crypto لینوکس
- جاوا 7 HotSpot
- خدمات امنیت شبکه (NSS) نسخه 3.13 و بالاتر [۲۷] (استفاده شده توسط فایرفاکس و گوگل کروم )
- Solaris Cryptographic Framework [۲۸] در Solaris 10 به بعد
- در FreeBSD را (OpenCrypto API (aesni (4) driver [۲۹]
- OpenSSL 1.0.1 و بالاتر [۳۰]
- FLAM / FLUC 5.1.08 (منتشر شد 2015-08-24) و بالاتر [۳۱]
- Bloombase[۳۲]
همچنین نگاه کنید
[ویرایش]- پسوند پیشرفته Vector (AVX)
- دستور CLMUL مجموعه
- مجموعه دستورالعمل FMA (FMA3، FMA4)
- RdRand
منابع
[ویرایش]- ↑ "Intel Software Network". Intel. Archived from the original on 7 April 2008. Retrieved 2008-04-05.
- ↑ Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Retrieved 2012-09-20.
- ↑ "Carry-Less Multiplication". Intel.
- ↑ "Intel® Product Specification Advanced Search". Intel® ARK (Product Specs).
- ↑ "Following Instructions". AMD. November 22, 2010. Archived from the original on November 26, 2010. Retrieved 2011-01-04.
- ↑ Dan Anderson (2011). "SPARC T4 OpenSSL Engine". Oracle. Retrieved 2012-09-20.
- ↑ Richard Grisenthwaite (2011). "ARMv8-A Technology Preview" (PDF). ARM. Archived from the original (PDF) on 10 June 2018. Retrieved 2012-09-20.
- ↑ Timothy Prickett Morgan (2012). "All the sauce on Big Blue's hot chip: More on Power7+". The Register. Retrieved 2012-09-20.
- ↑ "IBM System z10 cryptography". IBM. Retrieved 2014-01-27.
- ↑ "AMD Geode™ LX Processor Family Technical Specifications". AMD.
- ↑ "VIA Padlock Security Engine". VIA. Archived from the original on 15 May 2011. Retrieved 2011-11-14.
- ↑ ۱۲٫۰ ۱۲٫۱ شتابدهنده سختافزار رمزنگاری در OpenWRT.org
- ↑ "VIA Eden-N Processors". VIA. Archived from the original on 2011-11-11. Retrieved 2011-11-14.
- ↑ "VIA C7 Processors". VIA. Archived from the original on 19 April 2007. Retrieved 2011-11-14.
- ↑ "ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile" (PDF). ARM. December 2017. Archived from the original (PDF) on 17 October 2019. Retrieved 3 February 2019.
- ↑ "Security System/Crypto Engine driver status". sunxi.montjoie.ovh.
- ↑ "Linux Cryptographic Acceleration on an i.MX6" (PDF). Linux Foundation. February 2017. Archived from the original (PDF) on 26 August 2019. Retrieved 3 February 2019.
- ↑ "Cryptographic module in Snapdragon 805 is FIPS 140-2 certified". Qualcomm.
- ↑ "RK3128 - Rockchip Wiki". Rockchip wiki. Archived from the original on 28 January 2019. Retrieved 3 February 2019.
- ↑ "The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC". AnandTech.
- ↑ "Using the XMEGA built-in AES accelerator" (PDF). Retrieved 2014-12-03.
- ↑ "Cavium Networks Launches Industry's Broadest Line of Single and Dual Core MIPS64®-based OCTEON™ Processors Targeting Intelligent Next Generation Networks". Archived from the original on 7 December 2017. Retrieved 2016-09-17.
- ↑ P. Schmid and A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Retrieved 2010-08-10.
- ↑ T. Krovetz, W. Dai (2010). "How to get fast AES calls?". Crypto++ user group. Retrieved 2010-08-11.
- ↑ "Crypto++ 5.6.0 Pentium 4 Benchmarks". Crypto++ Website. 2009. Archived from the original on 19 September 2010. Retrieved 2010-08-10.
- ↑ "Intel Advanced Encryption Standard Instructions (AES-NI)". Intel. March 2, 2010. Archived from the original on 7 July 2010. Retrieved 2010-07-11.
- ↑ "AES-NI enhancements to NSS on Sandy Bridge systems". 2012-05-02. Retrieved 2012-11-25.
- ↑ "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27.
- ↑ "FreeBSD 8.2 Release Notes". FreeBSD.org. 2011-02-24. Archived from the original on 12 April 2011. Retrieved 2011-12-18.
- ↑ «OpenSSL: CVS Web Interface». بایگانیشده از اصلی در ۷ ژوئیه ۲۰۱۲. دریافتشده در ۲۵ سپتامبر ۲۰۱۹.
- ↑ "www.flam.de :: Products". flam.de.
- ↑ "Bloombase StoreSafe Intelligent Storage Firewall".